package com.wdciti.sccp.iot.tsdata.core.api;

import com.wdciti.sccp.iot.tsdata.core.model.DataType;
import com.wdciti.sccp.iot.tsdata.core.model.Measurement;
import com.wdciti.sccp.iot.tsdata.core.model.Template;

import java.util.List;

/**
 * @author JINWEN
 */
public interface TSDBWrapper<T> {

   T getSessionWrapper();

    TSDBWrapper<T> open() throws TsDataException;

    void close();


//    default Measurement createMeasurement(String key, DataType type) {
//        return new Measurement(key, type);
//    }
//
//    default Template createTemplate(String name, Measurement... measurements) {
//        return new Template(name, measurements);
//    }
//
//    default Template createTemplate(String name, List<Measurement> measurements) {
//        return new Template(name, measurements);
//    }

//    void useDatabase(String path) throws TsDataException;
//
//    void saveTemplate(Template template) throws TsDataException;
//
//    void deleteTemplate(String templateName) throws TsDataException;
//
//
//    List<String> showTemplate(String path) throws TsDataException;
//
//
//    void insertDataPointToSeries(DataPoint dataPoint);
//
//    void insertRawDataIntoSeries(String path, Template template, Long[] timestamps, String[] measurements, Object[][] values, boolean isAligned);
}
